1. Field of the Invention
The present invention relates to a method for transmitting data in a mobile ad hoc network and a network apparatus using the same, and more particularly, to a method for transmitting data in a mobile ad hoc network in which the quantity of data transmitted is adjusted by adjusting the size of a congestion window when duplicate ACK packets are received, and a network apparatus using the same.
2. Description of the Related Art
Transmission Control Protocol (TCP) is a protocol used for transmission of data between nodes connected to a network together with IP (Internet Protocol). One of main functions of TCP is to transmit data in a secured manner over a network. To this end, TCP utilizes a congestion control mechanism. In the TCP congestion control mechanism, congestion occurring during data transmission is detected from a data packet loss to directly control a data throughput at a sender side and lost data packets are then retransmitted.
FIG. 1 illustrates a change in the throughput depending on a conventional Slow-Start/Congestion Avoidance algorithm.
A congestion window (abbreviated as “CWND”) size is initialized to one TCP segment at the time when the TCP of a sending network apparatus initiates transmission of data packets. The TCP segment is incremented by one (1) for every acknowledgement (ACK) packet received from a receiving network apparatus. Accordingly, the CWND size is increased exponentially, as labeled 110 in FIG. 1, which is called a slow-start algorithm.
However, if an ACK packet for the transmitted data packet is not received, the TCP waits for a retransmission timeout, labeled 170. If no ACK packet is received until the retransmission timeout 170 occurs, the TCP considers that congestion occurs in the network. In this case, the TCP sets a slow-start threshold (SSTHRESH) to a value SSTHRESH1, labeled 150, the value being a half the CWND size set immediately before the retransmission timeout. In addition, the TCP sets the CWND size to one (1) TCP segment and transmits data packets subsequently transmitted after the lost data packet using a slow-start algorithm, labeled 120.
If the CWND size reaches the SSTHRESH1 150 during transmission using the slow-start algorithm, the TCP performs transmission using a congestion avoidance algorithm, labeled 130, in which CWND is linearly increased, in consideration of congestion of the network. Thereafter, if no ACK packet is received once again and there occurs a retransmission timeout, labeled 180, the TCP sets the slow-start threshold (SSTHRESH) to a value SSTHRESH2, labeled 160, the value being a half the CWND size set immediately before occurrence of the retransmission timeout, sets the CWND size to 1 TCP segment, and a low-start algorithm, labeled 140, is started again.
In the slow-start/congestion avoidance algorithm, a retransmission timer is used in checking a retransmission timeout. Thus, when a data packet currently being transmitted is lost, the TCP has to wait for a retransmission timeout before retransmitting the lost data packet, resulting in a waste of network resources.
To address this problem, a fast retransmission/fast recovery algorithm has been proposed. In the slow-start/congestion avoidance algorithm, the reason for data packet loss is determined to be only a result of occurrence of a retransmission timeout. However, in the fast retransmission algorithm, it is determined that there is a data packet loss when a retransmission timeout occurs or a given number of a duplicate ACK packet is received even before the retransmission timeout occurs.
The duplicate ACK packet is generated by the TCP of the receiving network apparatus when the sequence of data packets transmitted by the transmitting network apparatus is different from the sequence of data packets received by the receiving network apparatus. The sequence of data packets can be verified by sequence numbers set in data packet headers.
FIG. 2 is a diagram illustrating a change in the throughput according to a conventional congestion control algorithm using a fast retransmission/fast recovery algorithm.
If the number of the same duplicate ACK packet received before occurrence of a retransmission timeout is greater than or equal to a predetermined number, the TCP based on a fast retransmission algorithm considers that a data packet is lost and retransmits the data packet considered as being lost using the fast retransmission algorithm, as labeled 210. When the fast retransmission algorithm is applied, the CWND size is set to a value (CWND1/2)+3, labeled 240, the value being 3 greater than a half the CWND size, i.e., CWND1, labeled 230, when a predetermined number of the duplicate ACK packet is received.
The number of the duplicate ACK packets received for a fast retransmission is typically 3. An explanation of the reason for this will follow. In a case that one or two duplicate ACK packets are received, it can be determined that the receipt of the one or two duplicate ACK packets is due to a difference between the receiver's data packet receiving sequence and the sender's data packet transmitting sequence, which results from different delays in a network, rather than due to a data packet loss.
While a fast recovery algorithm 220 is implemented, a lost data packet is retransmitted and then directly enters into a congestion avoidance process without passing through a slow-start process. To this end, the SSTHRESH value and the CWND size are set to a value CWND1/2, labeled 250, the value being a half the CWND size, i.e., CWND1, labeled 230, when a predetermined number of the duplicate ACK packets are received.
The TCP algorithm is proposed for a wired network in which a router has a considerably long queue and there are few errors in a link layer. However, a mobile ad hoc network has a considerably slow data transmission rate compared to the wired network and a very short queue in the link layer. Accordingly, in an event of a data packet loss in the mobile ad hoc wireless network, if a CWND size is sharply reduced, unnecessary consumption of network resources may be unavoidable.
For example, when a fast recovery algorithm is implemented, a reset CWND value is approximately a half the CWND value when 3 duplicate ACK packets are received. However, duplicate ACK packets may be continuously received, which means that even if one or two data packets are lost, other data packets are continuously being transmitted. That is, even if the current CWND sized is maintained, the transmission is performed within the maximum allowed bandwidth. Therefore, reducing the CWND size to a half the CWND size set when 3 duplicate ACK packets are received may result in waste of the maximum allowed bandwidth. Accordingly, there is a continuing need for improved data transmission methods for efficient utilization of network resources.